package com.example.demo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.base.CommonPage;
import com.example.demo.dto.UserPageParam;
import com.example.demo.dto.UserParam;
import com.example.demo.entity.User;
import com.example.demo.vo.UserVO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author vicente
 * @since 2024-01-23
 */
public interface UserService extends IService<User> {

    /**
     * 添加用户
     * @param param
     * @return
     */
    boolean save(UserParam param);

    /**
     * 更新用户
     * @param param
     * @return
     */
    boolean update(UserParam param);

    /**
     * 更新用户
     * @param param
     * @return
     */
    IPage userPage(UserParam param);

    /**
     * 自定义分页查询用户
     * @param param
     * @return
     */
    CommonPage<UserVO> page(UserPageParam param);

    /**
     * 通过用户名查询
     * @param userName
     * @return
     */
    User selectByUserName(String userName);

    /**
     * 通过手机号查询
     * @param mobilePhone
     * @return
     */
    User selectByMobilePhone(String mobilePhone);
    /**
     * 通过id查询
     * @param id
     * @return
     */
    UserVO findById(Long id);
}
